Touch screen devices often have cumbersome on-screen user interfaces. Various ways of interacting with touch screens are known in the art. For example, using a stylus pen or fingers as input devices. The user experience may be further complicated when using one or more fingers as an input device. Placing a cursor and selecting text can be difficult using a finger because precision is much lower than with other input devices, such as a mouse. For example, placing a cursor at a precise point within a word can be difficult due to the size of the finger relative to the size of the word.
A user may want to place a cursor so that text being displayed by a computing device may be edited. Similarly, text may be selected so that it may be copied, cut, or overwritten by pasting text or entering new text. These operations, which are known in the art, have proven difficult to implement with touch screen devices due to the imprecision of using one or more fingers to interact with a touch screen. The speed and ease of selecting text is also reduced when the user interface requires the user to enter complicated commands such as pressing and holding the selected text. The above operations are an even more difficult problem for portable electronic devices.
User interfaces known in the art display a cursor that may make it difficult for a user to discern the exact location where text will be inserted when entered by the user. Furthermore, when selecting text, present user interfaces often require that the user's finger block the portion of text being selected. Thus, these user interfaces often utilize an offset representation of the text being selected which requires unintuitive and unnecessary hand-eye coordination.
Selecting text on multiple lines can be difficult because the lines of text typically occupy a small vertical space relative to the size of a user's finger. It is also very difficult for humans to move their finger in a straight line. This results in errors when a user attempts to select text on a single line but the user's finger moves just outside of the vertical space defined by the line of text causing the computing device to interpret the user's input as purposefully changing lines.